From eaddf70a430d8cc169374803313c0ff88eca2e1e Mon Sep 17 00:00:00 2001 From: Rui Matos Date: Sat, 14 Jul 2012 02:34:26 +0200 Subject: [PATCH] GtkTreeModelFilter: Fix _iter_previous() when iter points at 2nd node GSequence iterators point at the position between two elements so an iterator pointing at the N tree model node is actually between the N-1 and N sequence elements. This means that asking for the previous sequence iterator first and then checking if it is the begin iterator would yeld true for an iterator pointing at the 2nd tree model node and make us return FALSE mistakenly. https://bugzilla.gnome.org/show_bug.cgi?id=679910 --- gtk/gtktreemodelfilter.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gtk/gtktreemodelfilter.c b/gtk/gtktreemodelfilter.c index 2e7d218e8a..a8ef24b826 100644 --- a/gtk/gtktreemodelfilter.c +++ b/gtk/gtktreemodelfilter.c @@ -3227,12 +3227,12 @@ gtk_tree_model_filter_iter_previous (GtkTreeModel *model, elt = iter->user_data2; - siter = g_sequence_iter_prev (elt->visible_siter); - if (g_sequence_iter_is_begin (siter)) + if (g_sequence_iter_is_begin (elt->visible_siter)) { iter->stamp = 0; return FALSE; } + siter = g_sequence_iter_prev (elt->visible_siter); iter->user_data2 = GET_ELT (siter); -- 2.30.2